package myky.com.doctorapp.contract

import io.reactivex.Observable
import myky.com.doctorapp.base.BaseEntity
import myky.com.doctorapp.base.BaseView
import myky.com.doctorapp.entity.DepatmentAndAreaEntity
import myky.com.doctorapp.entity.DoctorWrapperEntity
import myky.com.doctorapp.entity.PageEntity

interface DoctorListContract {
    interface Model {
        fun findDoctorList(version: String, customerId: String, size: Int, current: Int, type: String, searchScope: Int, input: String
                           , province: String, city: String, departmentname: String): Observable<BaseEntity<DoctorWrapperEntity.DoctorListEntity>>


        fun findDeparmentAndArea(string: String): Observable<BaseEntity<DepatmentAndAreaEntity.DataEntity>>
    }

    interface View : BaseView<DoctorWrapperEntity.DoctorListEntity.DoctorsEntity> {
        fun showDoctorList(doctoerList: MutableList<DoctorWrapperEntity.DoctorListEntity.DoctorsEntity>, pageEntity: PageEntity)

        fun showDefaultDoctor(doctoerList: MutableList<DoctorWrapperEntity.DoctorListEntity.DoctorsEntity>, pageEntity: PageEntity);

        fun showDeapartmentAndArea(depatmentAndAreaEntity: DepatmentAndAreaEntity.DataEntity)
    }

    interface Presenter {
        //获取医生列表
        fun findDoctorList(version: String, customerId: String, size: Int, current: Int, type: String, searchScope: Int, input: String
                           , province: String, city: String, departmentname: String
        )


        fun findDeapartmentAndArea(version: String)
    }
}
